// 功能
// 更新视图；
// 将当前实例，添加到当前值的控制中心 dep中 
class Watcher {
  constructor(vm, key, cb) {
    this.vm = vm;
    this.key = key;
    this.cb = cb;
    Dep.target = this;
    // 这里获取了vm[key]，就进入了响应式的observer中的get方法，get方法中，通过Dep的target方法添加到dep实例中
    this.oldValue = vm[key]
    Dep.target = null
  }

  update() {
    let newValue = this.vm[this.key]
    if(this.oldValue === newValue) {
      return
    }
    this.cb(newValue)
  }
}